package com.platform.framework.serviceinf.alipay;


import com.platform.framework.vo.pub.ResponseVo;
import com.platform.framework.vo.transfer.TransportLayer;


/**
 * 支付宝服务调用接口
 * 主要服务场景：
 * 1、条码支付
 * 2、扫码支付，会返回二维码二进制流
 * 3、网页端调用，会在PC端返回支付宝支付页面（新加WAP端支付）
 * 4、支付宝订单退款服务，可以调用该服务退款
 * 5、支付宝订单查询服务，可以根据订单号或者交易流水ID查询支付宝某订单的最终支付结果
 * 6、支付宝撤单服务
 * 7、支付宝分润服务
 * @author ly-liugaoyang
 * @version v1.0.2
 * @create_time 2016年8月23日
 */
public interface AlipayService {
	
	/**
	 * 支付宝条码支付服务
	 * @param transportLayer 调用服务必须的参数
	 */
	public ResponseVo aliBarCodePay (TransportLayer transportLayer)throws Exception  ;
	
	/**
	 * 支付宝扫码支付，返回二进制流
	 * @param transportLayer
	 */
	public ResponseVo aliQRCodePay (TransportLayer transportLayer)throws Exception;
	
	/**
	 * 网页端调用，会在PC端返回支付宝支付页面
	 * @param transportLayer
	 */
	public ResponseVo aliPCPay (TransportLayer transportLayer);
	
	/**
	 * 网页端调用，会在WAP端返回支付宝支付页面
	 * @param transportLayer
	 */
	public ResponseVo aliWAPPay (TransportLayer transportLayer);
	
	/**
	 * 退款服务
	 * @param transportLayer
	 * @return 
	 */
	public ResponseVo aliRefund (TransportLayer transportLayer);
	
	/**
	 * 分账服务
	 * @param transportLayer
	 * @return 
	 */
	public ResponseVo aliSettle (TransportLayer transportLayer);
	
	/**
	 * 订单查询服务
	 * @param transportLayer
	 */
	public ResponseVo aliQueryTradeResult(TransportLayer transportLayer)throws Exception;
	
	/**
	 * 手动撤单
	 * @param transportLayer
	 * @return
	 */
	public ResponseVo aliCancelTrade (TransportLayer transportLayer)throws Exception;
	
}
